/**
有的时候，你不能提前知道一个类型里的所有属性的名字，但是你知道这些值的特征；
这种情况，你就可以用一个索引签名 (index signature) 来描述可能的值的类型；
一个索引签名的属性类型必须是 string 或者是 number。
 */
interface ICollection {
  // 索引签名
  [index: string]: number;

  length: number;
}

const names: number[] = [111, 222, 333];
console.log(names[0]);
console.log(names[1]);
console.log(names[2]);

function iteratorCollection(collection: ICollection) {
  // 若当成数组，属性名 实际不检测类型
  console.log(collection[0]);
  console.log(collection[1]);
}

// iteratorCollection(names)
// const tuple: [string, string] = ["why", "18"]
// iteratorCollection(tuple)

iteratorCollection({ name: 111, age: 18, length: 10 });

export {};
